コンピュータビジョンへの移行
今日、私たちは単純な構造化データを基本的な線形層で扱う方法から、高次元の画像データに挑戦する段階へと移行します。1枚のカラー画像は、従来のアーキテクチャでは効率的に処理できないほど大きな複雑さをもたらします。ビジョン向けの深層学習には、専門的なアプローチが必要です:畳み込みニューラルネットワーク(CNN)。
1. 全結合ネットワーク(FCN)が失敗する理由
FCNでは、入力のすべてのピクセルが次の層のすべてのニューロンに接続される必要があります。高解像度の画像では、これにより計算量が爆発的に増加し、トレーニングが不可能になり、過剰適合によって汎化性能が著しく低下します。
- 入力次元:標準的な $224 \times 224$ のRGB画像では、$150,528$ 個の入力特徴量($224 \times 224 \times 3$)が得られます。
- 隠れ層のサイズ: 最初の隠れ層に1,024個のニューロンを使用した場合。
- 合計パラメータ数(第1層): $\approx 154$ 百万個の重み($150,528 \times 1024$)が最初の接続ブロックにのみ必要で、膨大なメモリと計算時間が必要になります。
CNNによる解決策
CNNは、画像の空間的構造を活用することで、FCNのスケーラビリティ問題を解決します。小さなフィルタを使ってパターン(エッジやカーブなど)を検出することで、パラメータ数を桁違いに削減し、堅牢性を高めます。
端末bash — model-env
> 処理可能。実行するには「実行」をクリックしてください。
>
パラメータ効率インスペクターライブ
パラメータ数を可視化するため、比較を実行してください。
質問 1
以下のどの点が、局所受容野CNNで使用する主な利点は何ですか?
質問 2
$3 \times 3$ のフィルタを画像全体に適用した場合、どのようなコアなCNNの概念が利用されているでしょうか?
質問 3
どのCNNのコンポーネントが、特徴マップの空間的次元(幅と高さ)を段階的に小さくする責任を持っていますか?
チャレンジ:重要なCNNコンポーネントの特定
CNNのメカニズムとその機能的利点を結びつけてください。
画像内のオブジェクトがわずかに位置をずらしても認識できる、非常にパラメータ効率の高いビジョンモデルを構築しなければなりません。
ステップ 1
どのメカニズムが、フレーム内のどこに特徴(例:対角線)があっても識別できるように保証していますか?
解答:
共有重み。 すべての位置で同じフィルタを使用することで、ネットワークは並進不変性を学習します。
共有重み。 すべての位置で同じフィルタを使用することで、ネットワークは並進不変性を学習します。
ステップ 2
どのようなアーキテクチャ上の選択肢が、FCNよりも少ないパラメータで特徴を検出できるようにしているのでしょうか?
解答:
局所受容野(または疎接続)。 すべてのピクセルに接続するのではなく、各ニューロンは入力の小さな局所領域にのみ接続されます。
局所受容野(または疎接続)。 すべてのピクセルに接続するのではなく、各ニューロンは入力の小さな局所領域にのみ接続されます。
ステップ 3
CNNの構造はどのようにして階層的な特徴学習(例:エッジ → コーナー → オブジェクト)を実現しているのでしょうか?
解答:
スタックされたレイヤー。 初期のレイヤーは畳み込みを使ってシンプルな特徴(エッジ)を学習します。より深いレイヤーは、前のレイヤーの出力を組み合わせることで、複雑な抽象的な特徴(オブジェクト)を形成します。
スタックされたレイヤー。 初期のレイヤーは畳み込みを使ってシンプルな特徴(エッジ)を学習します。より深いレイヤーは、前のレイヤーの出力を組み合わせることで、複雑な抽象的な特徴(オブジェクト)を形成します。